/**
 * 模型和节点之间字段关系映射
 * @type {{height: string, rotate: string, width: string, startY: string, startX: string}}
 */
export const FIELDS_PATH = {
  width: 'size/width',
  height: 'size/height',
  startX: 'position/x',
  startY: 'position/y',
  rotate: 'angle'
}
/**
 * 内容节点的配置对象。
 *
 * @typedef {Object} NodeConfig
 * @property {string} key - 内容类型的唯一键。
 * @property {string} title - 内容类型的标题。
 * @property {Object} icon - 代表内容类型的图标。
 * @property {Object} config - 内容类型的配置对象。
 * @property {string} config.shape - 内容类型的形状标识符。
 * @property {Object} config.data - 包含内容类型特定设置的数据对象。
 * @property {number} config.data.startX - 起始 X 坐标。
 * @property {number} config.data.width - 结束 X 坐标。
 * @property {number} config.data.startY - 起始 Y 坐标。
 * @property {number} config.data.height - 结束 Y 坐标。
 * @property {string} config.data.contentType - 内容类型。
 * @property {string} config.data.contentTitle - 内容的标题。
 * @property {string} [config.data.contentBackgroundColor] - 内容的背景颜色。
 * @property {number} [config.data.cornerWidth] - 角的宽度（适用于有角形状）。
 * @property {number} [config.data.cornerHeight] - 角的高度（适用于有角形状）。
 * @property {number} [config.data.backgroundTransparent] - 背景透明度。
 * @property {number} [config.data.border] - 边框宽度。
 * @property {number} [config.data.rotate] - 旋转角度。
 * @property {number} [config.data.visible] - 可见性标志（1 为可见，0 为隐藏）。
 */

/**
 * Configuration for different types of content nodes.
 *
 * @type {{[key: string]: NodeConfig}}
 */
export const NODE_CONFIG = {
  /**
   * Configuration for a rectangle content node.
   *
   * @type {NodeConfig}
   */
  CONTENT_TYPE_ABORDER: {
    key: 'CONTENT_TYPE_ABORDER',
    title: '矩形',
    icon: 'RectangleOne',
    config: {
      shape: 'CONTENT_TYPE_ABORDER',
      data: {
        startX: 0,
        width: 50,
        startY: 0,
        height: 50,
        cornerWidth: 0,
        cornerHeight: 0,
        contentType: 'CONTENT_TYPE_ABORDER',
        contentTitle: null,
        contentBackgroundColor: 'black',
        backgroundTransparent: 2,
        border: 1,
        borderColor: 'black',
        borderSize: 1,
        rotate: 0,
        visible: 1
      }
    }
  },
  CONTENT_TYPE_LINE: {
    key: 'CONTENT_TYPE_LINE',
    title: '直线',
    icon: 'Connection',
    config: {
      shape: 'CONTENT_TYPE_LINE',
      data: {
        startX: 0,
        width: 50,
        startY: 0,
        height: 50,
        contentType: 'CONTENT_TYPE_LINE',
        contentTitle: null,
        diagonalType: 'MAJOR',
        lineThickness: 1,
        contentColor: 'black',
        contentBackgroundColor: 'white',
        backgroundTransparent: 2,
        border: 1,
        rotate: 0,
        visible: 1
      }
    }
  },
  CONTENT_TYPE_IMAGE: {
    key: 'CONTENT_TYPE_IMAGE',
    title: '图片',
    icon: 'Pic',
    config: {
      shape: 'CONTENT_TYPE_IMAGE',
      data: {
        startX: 0,
        width: 50,
        startY: 0,
        height: 50,
        contentType: 'CONTENT_TYPE_IMAGE',
        contentTitle: null,
        contentValue: null,
        // customContentValue: null,
        contentBackgroundColor: 'white',
        backgroundTransparent: 2,
        border: 1,
        cornerWidth: 0,
        cornerHeight: 0,
        rotate: 0,
        visible: 1,
        autoScale: 1,
        imageDithering: 'NONE'
      }
    }
  },
  // CONTENT_TYPE_TIME: {
  //   key: 'CONTENT_TYPE_TIME',
  //   title: '时间',
  //   icon: 'Time',
  //   config: {
  //     shape: 'CONTENT_TYPE_TIME',
  //     data: {
  //       startX: 0,
  //       width: 120,
  //       startY: 0,
  //       height: 40,
  //       contentType: 'CONTENT_TYPE_TIME',
  //       contentTitle: null,
  //       contentValue: '2024-01-01 00:00:00',
  //       // customContentValue: null,
  //       contentColor: 'black',
  //       contentBackgroundColor: 'white',
  //
  //       contentAlignment: 'left',
  //       contentVerticalAlignment: 'top',
  //       backgroundTransparent: 2,
  //       border: 1,
  //       cornerWidth: 0,
  //       cornerHeight: 0,
  //       rotate: 0,
  //       visible: 1,
  //       fontSize: 18,
  //       fontType: null,
  //       format: 'Hms',
  //       separator: ':',
  //       timezone: 'UTC+8',
  //       fontBold: null,
  //       fontItalic: null,
  //       textDecoration: 'none'
  //     }
  //   }
  // },
  // CONTENT_TYPE_DATE: {
  //   key: 'CONTENT_TYPE_DATE',
  //   title: '日期',
  //   icon: 'CalendarDot',
  //   config: {
  //     shape: 'CONTENT_TYPE_DATE',
  //     data: {
  //       startX: 0,
  //       width: 120,
  //       startY: 0,
  //       height: 40,
  //       contentType: 'CONTENT_TYPE_DATE',
  //       contentTitle: null,
  //       contentValue: '2024-01-01',
  //       // customContentValue: null,
  //       contentColor: 'black',
  //       contentBackgroundColor: 'white',
  //
  //       contentAlignment: 'left',
  //       contentVerticalAlignment: 'top',
  //       backgroundTransparent: 2,
  //       border: 2,
  //       cornerWidth: 0,
  //       cornerHeight: 0,
  //       rotate: 0,
  //       visible: 1,
  //       fontType: null,
  //       fontSize: 18,
  //       format: 'YMD',
  //       separator: '-',
  //       timezone: 'UTC+8',
  //       fontBold: null,
  //       fontItalic: null,
  //       textDecoration: 'none'
  //     }
  //   }
  // },
  CONTENT_TYPE_TEXT: {
    key: 'CONTENT_TYPE_TEXT',
    title: '文本',
    icon: 'Text',
    config: {
      shape: 'CONTENT_TYPE_TEXT',
      data: {
        startX: 0,
        width: 120,
        startY: 0,
        height: 40,
        contentTitle: null,
        contentValue: '默认文本',
        contentType: 'CONTENT_TYPE_TEXT',
        // customContentValue: null,
        contentColor: 'black',
        contentBackgroundColor: 'white',

        contentAlignment: 'left',
        contentVerticalAlignment: 'top',
        backgroundTransparent: 2,
        border: 2,
        cornerWidth: 0,
        cornerHeight: 0,
        rotate: 0,
        visible: 1,
        fontSize: 18,
        fontType: null,
        fontBold: false,
        fontItalic: null,
        textDecoration: 'none'
      }
    }
  },
  CONTENT_TYPE_QRCODE: {
    key: ' CONTENT_TYPE_QRCODE',
    title: '二维码',
    icon: 'TwoDimensionalCodeOne',
    config: {
      shape: 'CONTENT_TYPE_QRCODE',
      data: {
        startX: 0,
        width: 50,
        startY: 0,
        height: 50,
        contentType: 'CONTENT_TYPE_QRCODE',
        contentTitle: null,
        contentValue: '默认文本',
        // customContentValue: '',
        contentColor: 'white',
        contentBackgroundColor: 'black',

        backgroundTransparent: 2,
        _isPreserveAspectRatio: true,
        border: 2,
        cornerWidth: 0,
        cornerHeight: 0,
        rotate: 0,
        visible: 1
      }
    }
  },
  CONTENT_TYPE_BARCODE: {
    key: 'CONTENT_TYPE_BARCODE',
    title: '条形码',
    icon: 'BarCode',
    config: {
      shape: 'CONTENT_TYPE_BARCODE',
      data: {
        startX: 0,
        width: 120,
        startY: 0,
        height: 40,
        contentType: 'CONTENT_TYPE_BARCODE',
        contentTitle: null,
        contentValue: 'barcode',
        // customContentValue: null,
        contentColor: 'black',
        contentBackgroundColor: 'white',

        backgroundTransparent: 2,
        border: 2,
        cornerWidth: 0,
        cornerHeight: 0,
        rotate: 0,
        visible: 1,
        barHeight: 50,
        strikeThrough: 2,
        humanReadable: 'none',
        humanReadableFontType: 'CODE128',
        autoScale: 2
      }
    }
  },
  CONTENT_TYPE_NUMBER: {
    key: 'CONTENT_TYPE_NUMBER',
    title: '数字',
    icon: 'ListNumbers',
    config: {
      shape: 'CONTENT_TYPE_NUMBER',
      data: {
        startX: 0,
        width: 120,
        startY: 0,
        height: 40,
        contentType: 'CONTENT_TYPE_NUMBER',
        contentTitle: null,
        contentValue: '0.00',
        // customContentValue: '',
        contentColor: 'black',
        contentBackgroundColor: 'white',

        contentAlignment: 'left',
        contentVerticalAlignment: 'top',
        backgroundTransparent: 2,
        border: 2,
        cornerWidth: 0,
        cornerHeight: 0,
        rotate: 0,
        visible: 1,
        fontSize: 18,
        fontType: null,
        fontBold: null,
        fontItalic: null,
        textDecoration: 'none'
      }
    }
  }
}
/**
 * 条形码格式配置
 * @type {string[]}
 */
export const ENCODE_LIST = [
  'CODE128',
  'CODE39'
]
